package com.cdxy.service;

import com.cdxy.model.dto.req.LoginAccountReq;
import com.cdxy.model.dto.req.LoginEmailCodeReq;
import com.cdxy.model.dto.req.LoginMobileCodeReq;
import com.cdxy.model.dto.req.UserWithLoginReq;
import com.cdxy.model.dto.resp.UserInfoResp;

/**
 * @Author: tangy
 * @Date: 2020/3/6 16:20
 */
public interface ILoginService {

    /**
     * 手机验证码登录
     * @param loginMobileCodeReq
     * @return
     */
    UserInfoResp mobileCodeLogin(LoginMobileCodeReq loginMobileCodeReq);

    /**
     * 邮箱验证码登录
     * @param loginEmailCodeReq
     * @return
     */
    UserInfoResp emailCodeLogin(LoginEmailCodeReq loginEmailCodeReq);

    /**
     * 账号密码登录
     * @param loginAccountReq
     * @return
     */
    UserInfoResp accountLogin(LoginAccountReq loginAccountReq);

    /**
     * 退出登录
     *
     * @param userWithLoginReq
     */
    void loginOut(UserWithLoginReq userWithLoginReq);
}
